package com.zl.quickdoc.utils;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class SplitListUtils {
    
    /**list按等量拆分
     * 
     * @param list
     * @param splitSize 每组数量
     * @return
     */
    public static <T> List<List<T>> split(List<T> list, int splitSize){
        if(list==null || list.isEmpty()){
            return new ArrayList<>();
        }
        BigDecimal znum = new BigDecimal(list.size()).divide(new BigDecimal(splitSize),0, BigDecimal.ROUND_CEILING);
        List<List<T>> splitList = new ArrayList<>(znum.intValue());
        int factnum = znum.intValue();
        for(int i=0;i<factnum;i++){
            if(i==factnum-1){
                splitList.add(list.subList(i * splitSize,list.size()));
            }else{
                splitList.add(list.subList(i * splitSize, (i+1)*splitSize)) ;
            }
        }
        return splitList;
    }
}
